home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / sys / m68k / 241 < prev    next >
Encoding:
Text File  |  1996-08-05  |  2.0 KB  |  59 lines

  1. Newsgroups: comp.sys.m68k
  2. Path: phcoms4.seri.philips.nl!newssvr!cstw168!meulenbr
  3. From: meulenbr@natlab.research.philips.com (Frans Meulenbroeks)
  4. Subject: Re: Byte rotate for 68k
  5. Sender: news@natlab.research.philips.com (USENET News System)
  6. Message-ID: <meulenbr.824892703@cstw168>
  7. Date: Wed, 21 Feb 1996 08:51:43 GMT
  8. References: <4fv9qc$mu6@elektron.et.tudelft.nl> <tompatch-1602962103130001@dialip87.mm.com>
  9. Organization: Philips Research Laboratories Eindhoven, Netherlands
  10.  
  11. In <tompatch-1602962103130001@dialip87.mm.com> tompatch@mm.com (Tom Fairfield) writes:
  12.  
  13. >In article <4fv9qc$mu6@elektron.et.tudelft.nl>, bakker@morra.et.tudelft.nl
  14. >(jan-derk bakker) wrote:
  15.  
  16. >> I'm looking for 68k code to do byte block rotation. I
  17. >> know there's a better word, but I can't seem to find it.
  18. >> The idea is to take a block of eight bytes and to transform
  19. >> it into another eight-byte block, where byte 0 of the
  20. >> output consists of all the 0-bits of the input. The rows
  21. >> must be transformed to the columns, so to say.
  22. >> 
  23. >> Jan-Derk Bakker.
  24. >> J.D. Bakker, bakker@morra.et.tudelft.nl
  25. >> http://morra.et.tudelft.nl/~bakker/
  26.  
  27. >wouldn't it be easier to do something like this
  28.  
  29. >         MOVE.B   #7,D1
  30. >outer:   MOVE.B   #7,D0
  31. >inner:   LSL.B    (A0,D0.B)
  32. >         ROXL.B   (A0,D1.B)
  33.  
  34. You probably mean A1 instead of A0. 
  35.  
  36. >         SUBQ.B   #1,D0
  37. >         BPL      inner
  38.  
  39. These two can be combined into a db?? instruction
  40. (probably dbnz d0, inner)
  41.  
  42. >         SUBQ.B   #1,D1
  43. >         BPL      outer
  44.  
  45. >provided that A0 pointed to a COPY of the original source data and A1
  46. >pointed to the destination data.  The LSL instruction zeros the original
  47. >source data.
  48.  
  49. Instead of doing a roxl to (a1,d1.b), you could increament a1 (provided it
  50. is free for modification. This saves a few cycles calculating addresses.
  51. Maybe yet a few more cycles can be saved by storing the intermediate
  52. value in a register. E.g. have something like:
  53.     ROXL.B D2
  54. and store D2 at the end.
  55.  
  56. -- 
  57. Frans Meulenbroeks        (meulenbr@natlab.research.philips.com)
  58. Philips Research Laboratories
  59.